iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
1
自我挑戰組

作業系統概論系列 第 2

DAY2 作業系統結構(上)

  • 分享至 

  • xImage
  •  

作業系統服務

簡單來說,作業系統提供方便的環境給程式執行,同時也提供有幫助性的功能給使用者使用。作業系統服務大致上可分為九大類 :

  1. 使用者介面(User Interface,UI) :
    大多數的OS都具有UI。如命令型態介面(Command-Line)、圖形化介面(Graphics User Interface,GUI)、批次系統介面(Batch)。
  2. 程式執行(Program execution):
    系統需下載程式進入記憶體接著再執行。
  3. 輸出入作業系統(I/O operations) :
    執行程式時可能會需要使用到I/O作業,像是檔案或I/O裝置。
  4. 檔案系統操作(File-system manipulaion):
    需要使用到讀寫、新增、刪除、搜尋等功能。
  5. 通訊(Communications):
    在同部電腦裡或電腦跟電腦間溝通更改程式資料。
    6.偵錯(Error detection) :
    因為在CPU、記憶體、軟硬體,甚至使用者程式中都有可能出現錯誤,所以需要透過偵錯來找到錯誤並加以修正。

以上是幫助使用者使用的服務,以下三項是提供給系統使用的服務。

  1. 資源分配(Resource allocation):
    在多使用者或程式執行時,以公平、有效率的方式分配資源給所有程式。
  2. 紀錄(Accounting):
    追蹤使用者使用什麼種類、多少量的資源。
  3. 保護安全(Prtection and security):
    保護系統內部存取權限控制;防止內外部系統遭受攻擊或不當使用。

使用者作業系統介面
分為三項作介紹 :

  1. 命令型態介面(Command-Line,CLI):
  • 有時在內核中執行,有時在系統程式中執行。
  • 具備多類型的「殼」(Shells),包裝在OS外部,依據不同OS使用不同的殼。
  • 從使用者端取得指令並執行。
  1. 圖形化介面(Graphics User Interface,GUI):
  • 在桌上型電腦中很常見到。使用在滑鼠、鍵盤、螢幕中,以多樣的圖形表示為檔案、程式等。
  • 在現今中,已有很多程式包含CLI和GUI兩種。
    3.觸控螢幕介面(Touchscreen Interface):
  • 不需要滑鼠,鍵盤方面則是以虛擬化的方式呈現在螢幕上供使用者使用。
  • 具有聲控模式,如IPhone中的Siri。

系統呼叫(System Calls)

  • 由OS提供程式介面服務。
  • 通常使用高階語言讀寫,如C或C++。
  • 多數程式存取權限透過Application Programming Interface(API),非直接使用System Calls。
  • 所謂的程式呼叫就是跟OS本身服務要溝通的API,就叫做「系統呼叫」。
  • 因為每個System Calls都對應到一組數字,需要透過辨識數字,確認是哪種的System Calls才能執行。

系統呼叫參數傳送
有三種方法可以傳送參數到OS中:

  1. 傳送參數到暫存器中。
  2. 參數儲存在table、block、memory中,在傳送其位置到暫存器。
  3. 由程式將參數取代、推入堆疊中,然後由OS將其傳送出去。

系統呼叫種類
大致分為6種種類:

  1. 行程控制(Process control):
    具有新增、刪除、修查、等待行程時間等功能。還具有一種用於管理行程間共享數據存取的「鎖定」功能。
  2. 檔案管理(File management):
    屬於高階I/O作業。且依然具有新增、刪除、讀寫等功能。
  3. 裝置管理(Device management):
    屬於低階I/O作業。能夠進行連接跟分離裝置等功能。
  4. 資訊維護(Information maintenance):
    取得系統時間或數據,建立時間或數據等功能。
  5. 通訊(Communication):
  • 從客戶端傳送訊息到服務端
  • 分享相關空間或動作
  • 遠距硬碟也可透過System Calls連接或分離到裝置上。
  1. 保護(Protection):
    控制存取資源、允許或否認使用者權限等,也可以變成Command-Line下的命令來做。

系統程序
其目的就是提供便利好使用的環境,給程式發展和執行。一些分類在UI中,其他分類在System Calls中。大致分成八大項:

  1. 檔案操作(File manipulation):
    一樣具有新增、刪除、重新命名等功能。
  2. 狀態資料(Status Information):
  • 提供詳細的表現紀錄資料。
  • registry:是一種系統程式,可以用來更改系統設定,做到防毒的動作。
  1. 檔案修改(File modification):
    使用文字處理器新增或修改檔案;也可下指令去搜尋特定檔案。
  2. 程式語言支持(Programming-language support):
    提供編譯器、翻譯器等功能。
  3. 程式裝載執行(Program load and execution):
    提供重新定位裝載器等debug高階系統語言。
  4. 通訊(Communications):
  • 提供機制給新增虛擬連接,含行程、使用者、電腦系統等。
  • 傳送訊息到其他瀏覽器,像是訊息、E-mail、遠程登錄等。
  1. 背景程式服務(Background Services):
  • 無介面提供給使用者使用。
  • 在電腦啟動時開始啟動,可進行系統維護、檢查。
  1. 應用程式(Application prorgrams):
  • 不屬於一種系統。
  • 由使用者執行使用。
  • 被視為OS非典型的一部分。

因為作業系統架構內容較多,所以我分為上下兩篇來說明紀錄,內容可以較為詳細。


上一篇
DAY1:作業系統簡單介紹
下一篇
DAY3 作業系統架構(下)
系列文
作業系統概論30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0

好詳細,但我估計我看完就忘了QQ,沒辦法...
//1110418(一)0701_By Zi

我要留言

立即登入留言